package com.ssy.lingxi.purchase.model.response;

import com.ssy.lingxi.logistics.api.dto.response.ReceiverAddressResponse;
import com.ssy.lingxi.purchase.handler.annotation.DeliveryTypeAnnotation;
import com.ssy.lingxi.purchase.model.vo.FileUploadVO;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author wyx
 * @version 2.0.0
 * @date 2021-10-29
 */
@Setter
@Getter
public class RequisitionDetailRes {
    /**
     * 供应会员Id
     */
    private Long vendorMemberId;

    /**
     * 供应会员角色Id
     */
    private Long vendorRoleId;

    /**
     * 供应会员名称
     */
    private String vendorMemberName;

    /**
     * 订单商品信息
     */
    private PurchaseProductVO product;

    /**
     * 内部流转步骤
     */
    private List<WorkFlowStepRes> innerSteps;

    /**
     * 当前的内部流转步骤
     */
    private Integer currentInnerStep;

    /**
     * 请购单Id
     */
    private Long requisitionId;

    /**
     * 请购单号
     */
    private String requisitionNo;

    /**
     * 内部状态枚举
     */
    private Integer innerStatus;

    /**
     * 内部状态名称
     */
    private String innerStatusName;

    /**
     * 订单摘要
     */
    private String digest;

    /**
     * 订单预交日期，格式为yyyy-MM-dd
     */
    private String deliverTime;

    /**
     * 部门ID
     */
    private Long departmentId;

    /**
     * 部门名称
     */
    private String department;

    /**
     * 用途
     */
    private String purpose;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 下单时间，格式为yyyy-MM-dd HH:mm:ss
     */
    private String createTime;

    /**
     * 内部流转记录
     */
    private List<PurchaseInnerHistoryVO> innerHistories;

    /**
     * 预交日期
     */
    private String advanceDeliveryDate;

    /**
     * 配送方式枚举
     *    1、供应商直发客户
     *    2、供应商配送
     *    3、自提
     *    4、客户自提
     */
    private Integer deliveryMethod;

    /**
     * 配送方式名称
     */
    private String deliveryMethodName;

    /**
     * 直送客户/客户自提:
     *   1、直送客户
     *   2、客户自提
     */
    private Integer deliveryType;

    /**
     * 直送客户/客户自提名称
     */
    private String deliveryTypeName;

    /**
     * 送货地址id
     */
    private Long deliveryAddressId;

    /**
     * 送货地址
     */
    private String deliveryAddress;

    /**
     * 送货地址
     */
    private ReceiverAddressResponse receiverAddressResponse;

    /**
     * 请购人ID
     */
    private Long requisitionerId;

    /**
     * 请购人名称
     */
    private String requisitioner;

    /**
     * 附件
     */
    private List<FileUploadVO> attachments;

}
